home *** CD-ROM | disk | FTP | other *** search
- #######################################################################
- ## generic include for XXX. Do not use directly.
- ##
- ## $Id: mfd-interactive-setup.m2c 16380 2007-05-17 18:06:33Z rstory $
- ########################################################################
- @if $m2c_mark_boundary == 1@
- /** START code generated by $RCSfile$ $Revision: 16380 $ */
- @end@
- ########################################################################
- @eval $m2c_temp_writable = table_is_writable($context)@
- @eval $m2c_temp_create = table_has_create($context)@
- @eval $m2c_temp_dependencies = $m2c_temp_writable@
- @eval $m2c_temp_context_reg = "$mfd_default_context_reg"@
- @eval $m2c_temp_data_context = "$mfd_default_data_context"@
- @eval $m2c_temp_data_allocate = $mfd_default_data_allocate@
- @eval $m2c_temp_data_cache = $mfd_default_data_cache@
- @eval $m2c_temp_undo_embed = $mfd_default_undo_embed@
- @eval $m2c_temp_data_init = $mfd_default_data_init@
- @eval $m2c_temp_persistent = $m2c_temp_writable@
- @eval $m2c_temp_table_access = "$mfd_default_table_access"@
- @eval $m2c_temp_data_transient = $mfd_default_data_transient@
- @eval $m2c_temp_include_examples = $mfd_default_include_examples@
- @eval $m2c_temp_table_skip_mapping = $mfd_default_table_skip_mapping@
- @eval $m2c_temp_table_sparse = $mfd_default_data_sparse@
- @eval $m2c_temp_generate_makefile = $mfd_default_generate_makefile@
- @eval $m2c_temp_generate_subagent = $mfd_default_generate_subagent@
- ##
- @if $mfd_interactive_setup != 0@
- @open -@
- @ if $mfd_interactive_setup != -1@
- There are no defaults for ${context}. Would you like to
-
- 1) Accept hard-coded defaults
- 2) Set defaults now [DEFAULT]
-
- @ eval $ans = 2@
- @ prompt $ans Select your choice : @
- @ else@
- @ eval $ans = 2@
- @ end@
- @ if $ans == 1@
- @ else@
-
-
- ## ---------------------------------------------------
- @ if $m2c_temp_writable == 1@
- This table has writable columns. Do you want to generate
- code for writeable columns, or restrict the table to read-only?
-
- 1) generate code with writeable columns [DEFAULT]
- 2) generate code with read-only columns
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
- @ eval $m2c_temp_writable = 0@
- @ eval $m2c_temp_create = 0@
- @ eval $m2c_temp_dependencies = 0@
- @ eval $m2c_temp_persistent = 0@
- @ end@
-
-
- @ end@ # writable
- ## ---------------------------------------------------
- @ if $m2c_temp_persistent == 1@
- @ eval $m2c_temp_persistent = 0@
- Since your table is writable, do you want to generate code to save and
- restore rows in the Net-SNMP persistent store? You should only use this
- option if the agent 'owns' the data, and doesn't get the data from an
- external source.
-
- 1) do not generate persistent store code [DEFAULT]
- 2) generate persistent store code
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
- @ eval $m2c_temp_persistent = 1@
- @ end@
-
-
- @ end@ # persistent
- ## ---------------------------------------------------
- @ if $m2c_temp_dependencies == 1@
- @ eval $m2c_temp_dependencies = 0@
- Writable tables sometimes have dependencies beteen columns
- or with other tables. If there are no dependencies in this table, you
- probably do not want the extra code.
-
- 1) do not generate dependency code [DEFAULT]
- 2) generate dependency code
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
- @ eval $m2c_temp_dependencies = 1@
- @ end@
-
-
- @ end@ # dependencies
- ## ---------------------------------------------------
- @ if $m2c_temp_create == 1@
- This table has read-create columns. Do you want to generate
- code for dynamic row creation?
-
- 1) generate code for row creation [DEFAULT]
- 2) do not generate code for row creation
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
- @ eval $m2c_temp_create = 0@
- @ end@
-
-
- @ end@ # create
- ## ---------------------------------------------------
- Do you want to use an existing data structure for the USER context?
- This would be a structure used to track data for the entire table,
- (similar to a global variable) not individual rows.
-
- 1) No, use $m2c_temp_context_reg [DEFAULT]
- 2) Yes, use my own structure
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
- @ prompt $m2c_temp_context_reg Enter your USER context : @
- @ end@
-
-
- ## ---------------------------------------------------
- Do you want to use an existing data structure for the DATA context?
- The DATA context holds the data for each MIB column. By default, a new
- data structure will be created with an element for each column.
-
- 1) No, use $m2c_temp_data_context [DEFAULT]
- 2) Yes, use my own structure
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
-
-
- Note: Do not enter a pointer type. Use the base structure name. For
- example, use 'struct widget', not 'struct widget *'. If you will be
- using pointer to the structure, select dynamic allocation in the
- next question.
-
- @ prompt $m2c_temp_data_context Enter your DATA context : @
- @ end@
-
-
- ## ---------------------------------------------------
- @ if "x$m2c_temp_data_context" ne "x$mfd_default_data_context"@
- Do you want to allocate your '$m2c_temp_data_context' DATA context, or
- embed it directly? If your data is INTERNAL (controlled by the agent), you
- probably want embedded. If your data is EXTERNAL (controlled by another
- process) and you have pointers to the data, you probably want allocated.
-
- 1) directly embed structure [DEFAULT]
- 2) dynamically allocate structure
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
- @ eval $m2c_temp_data_allocate = 1@
- @ end@
-
-
- @ end@ # ! default (generated)
- ## ---------------------------------------------------
- Do you need to initialize elements in the '$m2c_temp_data_context' DATA
- context when a new instance is created (eg default values, or other structures
- you are going to add that might need initialization to the row request context?
- (The most common reasons you might need to do this is are if you want to keep
- some non-MIB data for every row, or some columns have default values.)
-
- 1) no, no initialization needed
- 2) yes, initilization is needed [DEFAULT]
-
- @ prompt $ans Select your choice : @
- @ if $ans == 1@
- @ eval $m2c_temp_data_init = 0@
- @ end@
-
-
- ## ---------------------------------------------------
- Do you plan on keeping all data in the format defined by the MIB? If so,
- no functions will be generated to map values. If some data will be
- stored in a different format, the mapping functions will be generated.
- If your MIB has integers with enumerations, mapping functions are more
- likely to be needed. (e.g. A TruthValue object will hold the value
- 1 or 2, but a C boolean would be 1 or 0.)
-
- 1) All values will be stored as defined by the MIB [DEFAULT]
- 2) I need to map values to the format defined by the MIB.
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
- @ eval $m2c_temp_table_skip_mapping = -1@
- @ end@
-
-
- ## ---------------------------------------------------
- Which method would you like to use to gather data about available rows?
-
- 1) container : [DEFAULT] This access method uses a netsnmp_container
- to store all row data in memory. This method is best for:
- - Internal data (maintained by the agent)
- - Access speed is important
- - Sufficient memory exists to contain all rows
-
- 2) container-cached : This access method uses a netsnmp_container
- to keep track of the indexes (and data, usually) for each
- row. This method is best for:
- - External data (maintained by another process/the kernel)
- - Access speed is important
- - Sufficient memory exists to contain all indexes
-
- 3) unsorted-external : This access method iterates over all of your data
- to find the row with the appropriate index. This method is good for
- - External data (maintained by another process/the kernel)
- - Using less memory is much more important than access speed
-
- @ prompt $ans Select your choice : @
- @ if $ans == 3@
- @ eval $m2c_temp_table_access = "unsorted-external"@
- @ elsif $ans == 2@
- @ eval $m2c_temp_table_access = "container-cached"@
- @ eval $m2c_temp_data_cache = 1@
- @ else@
- @ eval $m2c_temp_table_access = "container-cached"@
- @ eval $m2c_temp_data_cache = 0@
- @ end@
-
-
- ## ---------------------------------------------------
- When accessing your data, is your data TRANSIENT?
-
- 1) Yes. My data is TRANSIENT (e.g. a pointer to a static buffer that
- my be overwritten during a request) and needs to be copied during
- processing.
-
- 2) Yes. My data is SEMI-TRANSIENT (e.g. an allocated pointer to a
- copy of the data).
-
- 3) No, my data is PERSISTENT (e.g. an allocated pointer to the actual
- data, which is under the agent's control)
- ## '
-
- @ prompt $ans Select your choice [DEFAULT=1] : @
- @ if $ans == 3@
- @ eval $m2c_temp_data_transient = 0@
- @ elsif $ans == 2@
- @ eval $m2c_temp_data_transient = 1@
- @ else@
- @ eval $m2c_temp_data_transient = 2@
- @ end@
-
-
- ## ---------------------------------------------------
- Do you want example code to be generated? This will generate example code
- for reading data from a text file.
-
- 1) generate example code [DEFAULT]
- 2) do not generate example code
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
- @ eval $m2c_temp_include_examples = 0@
- @ else@
- @ eval $m2c_temp_include_examples = 1@
- @ end@
-
- ## ---------------------------------------------------
- Is your table sparse? A sparse table is a table where some
- columns might not exist for all rows. Note that if your table
- contains a RowStaus column and it supports createAndWait, you
- will need sparse table support.
-
- 1) No, all columns always exist for every row [DEFAULT]
- 2) Yes, my table is sparse
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
- @ eval $m2c_temp_table_sparse = 1@
- @ end@
-
- ## ---------------------------------------------------
- Do you want a makefile and AgentX subagent source file generated?
- This will let you test your table without having to link it into
- snmpd. (You can still link it in later.)
-
- 1) do not generate makefile/AgentX code [DEFAULT]
- 2) generate makefile/AgentX code
-
- @ prompt $ans Select your choice : @
- @ if $ans == 2@
- @ eval $m2c_temp_generate_makefile = 1@
- @ eval $m2c_temp_generate_subagent = 1@
- @ else@
- @ eval $m2c_temp_generate_makefile = 0@
- @ eval $m2c_temp_generate_subagent = 0@
- @ end@
-
- @ end@ # do not use hardcoded
- @end@ # $mfd_interactive_setup == 1
- ##################################
- ##
- ## save values
- ## Note: if you add a var here, add it in m2c_table_save_defaults.m2i too
- ##
- @eval $m2c_context_reg = "$m2c_temp_context_reg"@
- @eval $m2c_data_allocate = $m2c_temp_data_allocate@
- @eval $m2c_data_cache = $m2c_temp_data_cache@
- @eval $m2c_data_context = "$m2c_temp_data_context"@
- @eval $m2c_data_init = $m2c_temp_data_init@
- @eval $m2c_data_transient = $m2c_temp_data_transient@
- @eval $m2c_include_examples = $m2c_temp_include_examples@
- @eval $m2c_irreversible_commit = $m2c_irreversible_commit@
- @eval $m2c_table_access = "$m2c_temp_table_access"@
- @eval $m2c_table_dependencies = $m2c_temp_dependencies@
- @eval $m2c_table_persistent = $m2c_temp_persistent@
- @eval $m2c_table_row_creation = $m2c_temp_create@
- @eval $m2c_table_settable = $m2c_temp_writable@
- @eval $m2c_table_skip_mapping = $m2c_temp_table_skip_mapping@
- @eval $m2c_table_sparse = $m2c_temp_table_sparse@
- @eval $mfd_generate_makefile = $m2c_temp_generate_makefile@
- @eval $mfd_generate_subagent = $m2c_temp_generate_subagent@
- ##
- ## write them back
- ##
- @include m2c_table_save_defaults.m2i@
- ##
- ########################################################################
- @if $m2c_mark_boundary == 1@
- /** END code generated by $RCSfile$ $Revision: 16380 $ */
- @end@
-